查看原文
其他

【强基固本】强化学习入门简述



“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出“强基固本”专栏,讲解AI领域的基础知识,为你的科研学习提供助力,夯实理论基础,提升原始创新能力,敬请关注。

来源:知乎—吴海波
地址:https://zhuanlan.zhihu.com/p/64197895
In a nutshell, RL is the study of agents and how they learn by trial and error. It formalizes the idea that rewarding or punishing an agent for its behavior makes it more likely to repeat or forego that behavior in the future.

近期在业务上尝试了一些RL相关的技术,相对于深度学习,RL在知乎上资料明显偏少。分享一些优秀的资料给有兴趣的同学。

RL有很多新的概念,最核心的四元组:


: Action space : A State space : S Reward: R : S × A × S → R Transition : P :S × A → S

以及我们常说的Value-base和Policy-base、model-base和model-free、stochastic policy和deterministic policy等等。下图能更好的描述:

一上来就看Sutton的大作容易迷失在知识的海洋中。在面对一个未知领域时,如果能从一个麻雀虽小五脏俱全的demo开始入手,怎么容易的多。缩短学习过程和反馈的路径,有助于提高学习效率。

首推莫烦的RL教程 非常通俗易懂的入门教程,覆盖了目前RL的主要算法,从最简单的Q Learning开始,到DQN、PPO以及后面的Actor-critic算法,而最关键的是每一篇都很短。

https://morvanzhou.github.io/tutorials/machine-learning/reinforcement-learning/

通过动手实现一个个demo,快速熟悉常用的RL算法,比如,一个常见的RL大概有以下几个部分:

class DeepQNetwork: def init # 初始化 def _build_net(self): #创建一个网络来预估action或者其他

def store_transition(self, s, a, r, s_): # 存储训练过程中的表现
def choose_action(self, observation): # 如何选择一个action
def learn(self):    # 参数如何更新

同时,结合OpenAI的Spinning up的教程,特别是他的Introduction部分:

http://spinningup.openai.com/en/latest/spinningup/rl_intro.html

1. Key Concept in RL

2. Kinds of RL Algorithms

3. Intro to Policy Optimization

仔细的去理解RL中的核心概念。

一些关键点

Whatever the choice of return measure (whether infinite-horizon discounted, or finite-horizon undiscounted), and whatever the choice of policy, the goal in RL is to select a policy which maximizes expected return when the agent acts according to it.

RL的问题,最终要去思考怎么定义采取动作后的reward和最大reward的差异,以及我们用什么方法更新参数。

在Q Learning中,有一张大表,记录了所有state对应action的value,我们需要做的是通过样本学习表中每个单元格的value,让reward最大。

在大多数情况下,这个表会大的不可接受。在DQN中,用一个NN去替代了查表的操作。再通过experience reply解决机器学习要求独立同分布的问题,用固定参数的方式,一个网络输出Q估计和Q现实,二者的diff作为loss去更新参数。

另一种思路是直接优化policy,还是用NN去输出policy。问题转化为如何更新NN的参数,分为stochastic和deterministic,其中stochastic需要采样,计算量更大,比如PPO。而大神David Silver在14年的论文Deterministic Policy Gradient Algorithms(DPG)证明了DPG的策略梯度公式,其后的DDPG更是大行其道。

自然而然的,出现了融合Value和policy的思想的算法。Actor-critic算法,其中Actor代表了Policy Gradient,而Critic代表了Value base的。其中代表算法为A3C,是目前state of art的算法之一。

进阶资料

走完上面的路程之后,只是简单过了遍概念。接着要老老实实的去啃Sutton的大作,结合David Silver的课,有助于消化。同时,还要深入到实际工作中在业务上落地。

http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.html

最后,引用下侯捷老师的一段话,与诸君共勉:

作为一个好的学习者,背景不是重点,重要的是,你是否具备正确的学习态度,起步固然可以从轻松小品开始,但如果碰上大部头巨著就退避三舍、逃之夭夭,面对任何技术只求快餐速成,学语言却从来不写程序,那就绝对没有成为高手乃至专家的一天。有些人学习,自练就一身钢筋铁骨,可以在热带丛林中披荆斩棘,在莽莽草原中追奔逐北。有些人的学习,既未习惯大部头书,也为习惯严谨格调,更未习惯自修勤学,是温室里的一朵花,没有自立自强的本钱。

参考

https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/
https://zhuanlan.zhihu.com/p/25239682
http://spinningup.openai.com/en/latest/spinningup/rl_intro3.html
https://zhuanlan.zhihu.com/p/34918639

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“强基固本”历史文章


更多强基固本专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存